The International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 recommendation (hereinafter the “MPEG-4 AVC standard”) specifies syntax and semantics of the Video Usability Information (VUI) parameters of the sequence parameter sets. VUI includes information of aspect ratio, over-scanning, video signal type, chroma location, timing, Network Abstraction Layer (NAL) Hypothetical Reference Decoder (HRD) parameters, Virtual Coding Layer (VCL) HRD parameters, bitstream restriction, and so forth. The syntax of VUI parameters in the MPEG-4 AVC Standard is shown in TABLE 1.
TABLE 1vui_parameters( ) {CDescriptoraspect_ratio_info_present_flag0u(1)if( aspect_ratio_info_present_flag ) {aspect_ratio_idc0u(8)if( aspect_ratio_idc = = Extended_SAR ) {sar_width0u(16)sar_height0u(16)}}overscan_info_present_flag0u(1)if( overscan_info_present_flag )overscan_appropriate_flag0u(1)video_signal_type_present_flag0u(1)if( video_signal_type_present_flag ) {video_format0u(3)video_full_range_flag0u(1)colour_description_present_flag0u(1)if( colour_description_present_flag ) {colour_primaries0u(8)transfer_characteristics0u(8)matrix_coefficients0u(8)}}chroma_loc_info_present_flag0u(1)if( chroma_loc_info_present_flag ) {chroma_sample_loc_type_top_field0ue(v)chroma_sample_loc_type_bottom_field0ue(v)}if( profile_idc == ‘SVC’) {num_layers_minus10ue(v)for( i = 0; i <= num_layers_minus1; i++ ) {temporal_level[ i ]0u(3)dependency_id[ i ]0u(3)quality_level[ i ]0u(2)timing_info_present_flag[ i ]0u(1)if( timing_info_present_flag[ i ] ) {num_units_in_tick[ i ]0u(32)time_scale[ i ]0u(32)fixed_frame_rate_flag[ i ]0u(1)}nal_hrd_parameters_present_flag[ i ]0u(1)if( nal_hrd_parameters_present_flag[ i ] )hrd_parameters( )vcl_hrd_parameters_present_flag[ i ]0u(1)if( vcl_hrd_parameters_present_flag[ i ])hrd_parameters( )if( nal_hrd_parameters_present_flag[ i ] | |vcl_hrd_parameters_present_flag[ i ] )low_delay_hrd_flag[ i ]0u(1)pic_struct_present_flag[ i ]0u(1)}} else {timing_info_present_flag0u(1)if( timing_info_present_flag ) {num_units_in_tick0u(32)time_scale0u(32)fixed_frame_rate_flag0u(1)}nal_hrd_parameters_present_flag0u(1)if( nal_hrd_parameters_present_flag )hrd_parameters( )vcl_hrd_parameters_present_flag0u(1)if( vcl_hrd_parameters_present_flag )hrd_parameters( )if( nal_hrd_parameters_present_flag | |vcl_hrd_parameters_present_flag )low_delay_hrd_flag0u(1)pic_struct_present_flag0u(1)}bitstream_restriction_flag0u(1)if( bitstream_restriction_flag ) {motion_vectors_over_pic_boundaries_flag0u(1)max_bytes_per_pic_denom0ue(v)max_bits_per_mb_denom0ue(v)log2_max_mv_length_horizontal0ue(v)log2_max_mv_length_vertical0ue(v)num_reorder_frames0ue(v)max_dec_frame_buffering0ue(v)}}
VUI provides extra information of the bitstream to the user for a variety of purposes. For example, in bitstream restriction information, VUI specifies: (1) if the motion is over picture boundary; (2) maximal bytes per picture; (3) maximal bits per macroblock; (4) maximal motion vector length (horizontal and vertical); (5) number of reordering frames; and (6) maximal decoded frame buffer size. When the decoder sees the information, instead of using the “level” information to set the decoding requirement which, in general, is higher than what the bitstream actually requires, the decoder can customize its decoding operation based on the tighter limit.